package com.lottery.system.service;

import com.lottery.system.controller.param.CreateActivityParam;
import com.lottery.system.controller.param.PageParam;
import com.lottery.system.service.dto.ActivityDetailDTO;
import com.lottery.system.service.dto.ActivityInfoDTO;
import com.lottery.system.service.dto.CreateActivityDTO;
import com.lottery.system.service.dto.PageListDTO;

import java.util.List;

/**
 * @author: xiaoxie
 * create: 2024-09-09 10:25
 * @BelongsProject: lottery-system
 * @BelongsPackage: com.lottery.system.service
 * description: 活动的业务逻辑层
 */
public interface ActivityService {

    /**
     * @description: 创建活动
     * @author: xiaoxie
     * @date: 2024/9/9 10:26
     * @param: [param]
     * @return: com.lottery.system.service.dto.CreateActivityDTO
     **/
    CreateActivityDTO createActivity(CreateActivityParam param);

    /**
     * @description: 获取活动列表
     * @author: xiaoxie
     * @date: 2024/9/9 21:56
     * @param: [param]
     * @return: java.util.List<com.lottery.system.service.dto.ActivityInfoDTO>
     **/
    PageListDTO<ActivityInfoDTO> getActivityList(PageParam param);

    /**
     * @description: 获取活动详细信息
     * @author: xiaoxie
     * @date: 2024/9/10 15:44
     * @param: [activityId]
     * @return: com.lottery.system.service.dto.ActivityDetailDTO
     **/
    ActivityDetailDTO getActivityDetail(Long activityId);

    /**
     * @description: 缓存中奖记录
     * @author: xiaoxie
     * @date: 2024/9/13 17:31
     * @param: [activityId]
     * @return: void
     **/
    void cacheWinningInfo(Long activityId);
}
